import axios from 'axios'
import Vue from 'vue'
import router from './router'

let test=false;//是不是测试的，如果是测试的用测试的API，如果不是，用正式的API

const http = axios.create({
    baseURL:test?'http://localhost:80/admin/api':'/admin/api',
    // process.env.VUE_APP_API_URL||'/admin/api',
    //这里的意思是，如果在.env.development这个配置文件夹下面，有VUE_APP_API_URL这个配置变量的时候，用它写的地址
    //如果没有，则直接在域名后面，接上/admin/api这个地址，去请求接口，这是因为我们发布到服务器上之后，就在同一个域名中了
    // baseURL: 'http://localhost:80/admin/api'
})
//下面是拦截器，用以在http请求头中加入token,Bearer表示这个是什么类型
//Authorization是一个标准的请求头信息，需要验证身份的一般都放在这里
http.interceptors.request.use(config => {
    if (sessionStorage.token) {
        config.headers.Authorization = 'Bearer ' + sessionStorage.token+' '+sessionStorage.identity
    }
    return config
}, err => {
    return Promise.reject(err)
})

http.interceptors.response.use(res => {
    return res
}, err => {
    if (err.response.data.message) {
        Vue.prototype.$message.error(err.response.data.message)
    }
    if (err.response.status == 401) {
        router.push('/')
    }
    return Promise.reject(err)
})

export default http;